import {httpPost,httpGet,httpPut,httpDelete} from "../servers/http"
type int = number;
		type List<T> = Array<T>
		type Collection<T> = Array<T>
		
type JsonNode = any
type long = number
interface KeyValueDTO<T,T1>{key:T,value:T1}
export interface IospayNotifyVO {
  /** 支付单号 */
  payNo?: string
  /** 凭据 */
  receipt?: string
  /** 商品id */
  transactionId?: string
}

export interface PayVO {
  /** 支付单号 */
  payNo?: string
  /** 支付密码 */
  payPassword?: string
}

export interface PayInfo {
  /** 实际金额(分) */
  actualAmount?: number
  /** 发生金额(分) */
  amount?: number
  /** 业务系统回调队列名称 */
  callbackQueue?: string
  /** 回调状态：0-未回调 1-成功 2-失败 3-不回调 */
  callbackStatus?: number
  /** 回调时间 */
  callbackTime?: string
  /** 创建时间 */
  createDate?: string
  /** 创建人ID */
  createUserId?: number
  /** 币种编码 */
  currencyCode?: string
  /** 手续费(分) */
  feeAmount?: number
  /** 客户端IP地址 */
  ip?: string
  /** 分布式唯一ID */
  kid?: number
  /** 最后修改时间 */
  lastUpdateDate?: string
  /** 最后修改人ID */
  lastUpdateUserId?: number
  /** 微信小程序支付openid */
  openid?: string
  /** 订单描述 */
  orderDesc?: string
  /** 业务订单ID集，多个逗号分隔 */
  orderIds?: string
  /** 订单类型 */
  orderType?: string
  /** 支付通道：1-支付宝，2-微信，3-苹果，4-银联，5-中国银联（提现） */
  payChannel?: number
  /** 支付完成时间 */
  payCompleteTime?: string
  /** 支付扩展信息 */
  payExt?: string
  /** 支付单号 */
  payNo?: string
  /** 支付来源：1-IOS 2-ANDROID 3-WEB 4-MINI_PROGRAM */
  paySource?: number
  /** 支付状态：1-处理中 2-成功 3-失败 */
  payStatus?: number
  /** 传入支付机构的原始报文 */
  requestMessage?: string
  /** 支付机构回调的原始报文 */
  responseMessage?: string
  /** 前端回跳URL地址 */
  returnUrl?: string
}

export interface LovelornWithdraw {
  /** 提现金额(分) */
  amount?: number
  /** 创建人ID */
  createUserId?: number
  /** 提现渠道：1-支付宝，2-微信，3-苹果，4-银联，5-中国银联（提现） */
  withdrawChannel?: number
  /** 提现状态：1-审核中 2-成功 3-失败 */
  withdrawStatus?: number
}

export interface PageList<T> {
  /** 数据总条数，前端接口可忽略改字段 */
  count?: number
  /** 数据集合 */
  entities?: T[]
  /** 当前页码 */
  pageNo?: number
  /** 每页条数 */
  pageSize?: number
}

export interface AuthorizationParam {
  /** app_id */
  appId?: string
  /** redirect_uri */
  redirectUri?: string
  /** scope */
  scope?: string[]
}

export interface CreditInfo {
  /** 用户token */
  accessToken?: string
  /** 租户ID */
  tenantId?: string
  /** 用户ID */
  userId?: number
}

export interface UserInfo {
  /** 用户头像 */
  avatar?: string
  /** 用户市 */
  city?: string
  /** 用户性别。 */
  gender?: string
  /** 是否通过实名认证。T是通过 F是没有实名认证。 */
  is_certified?: string
  /** 是否是学生 */
  is_student_certified?: string
  /** 用户昵称 */
  nick_name?: string
  /** 用户省 */
  province?: string
  /** 用户ID */
  user_id?: string
  /** 用户状态用户状态（Q/T/B/W）。Q代表快速注册用户T代表已认证用户 B代表被冻结账户W代表已注册，未激活的账户 */
  user_status?: string
  /** 用户类型 1代表公司账户2代表个人账户 */
  user_type?: string
}
export default {
  healths: {
    /**
    * 健康检查
    */
    check(): Promise<boolean> {
      return httpGet(`/platform-pay/v1.4/pb/healths/action/check`).then((res) => res.data)
    },
  },
  notifys: {
    /**
    * 苹果支付回调
    */
    iospay(iospayNotifyVO: IospayNotifyVO): Promise<boolean> {
      return httpPost(`/platform-pay/v1.4/pt/notifys/action/iospay`, iospayNotifyVO).then((res) => res.data)
    },
  },
  payInfos: {
    /**
    * 余额支付接口
    */
    pay(payVO: PayVO): Promise<boolean> {
      return httpPost(`/platform-pay/v1.4/pt/pay-infos/action/pay`, payVO).then((res) => res.data)
    },
    /**
    * 查询支付订单状态：0-非法查询 1-处理中 2-成功 3-失败
    */
    payInfo(params: { payNo: string }): Promise<PayInfo> {
      return httpGet(`/platform-pay/v1.4/pt/pay-infos/action/pay-Info`,  {params} ).then((res) => res.data)
    },
    /**
    * 查询支付订单状态：0-非法查询 1-处理中 2-成功 3-失败
    */
    payStatus(params: { payNo: string }): Promise<number> {
      return httpGet(`/platform-pay/v1.4/pt/pay-infos/action/pay-status`,  {params} ).then((res) => res.data)
    },
    /**
    * 根据支付单号查询支付信息
    */
    payInfoList(payNos: string[]): Promise<List<PayInfo>> {
      return httpPost(`/platform-pay/v1.4/pt/pay-infos/action/payInfoList`, payNos).then((res) => res.data)
    },
  },
  withdrawInfos: {
    /**
    * 提现清单
    */
    selectCharismaValueWithdrawRecords(params: { pageNo?: number, pageSize?: number }): Promise<PageList<LovelornWithdraw>> {
      return httpGet(`/platform-pay/v1.4/pt/withdraw-infos/action/select-charisma-value-withdraw-records`,  {params} ).then((res) => res.data)
    },
  },
  zhimaCreditRecords: {
    /**
    * 获取授权参数
    */
    getParams(): Promise<AuthorizationParam> {
      return httpGet(`/platform-pay/v1.4/pt/zhima-credit-records/action/getParams`).then((res) => res.data)
    },
    /**
    * 查询芝麻分
    */
    getScore(creditInfo: CreditInfo): Promise<number> {
      return httpPost(`/platform-pay/v1.4/pt/zhima-credit-records/action/getScore`, creditInfo).then((res) => res.data)
    },
    /**
    * 支付宝身份
    */
    getUserInfo(creditInfo: CreditInfo): Promise<UserInfo> {
      return httpPost(`/platform-pay/v1.4/pt/zhima-credit-records/action/getUserInfo`, creditInfo).then((res) => res.data)
    },
    /**
    * 通过auth_code用户授权
    */
    userInfo(params: { auth_code?: string }): Promise<boolean> {
      return httpGet(`/platform-pay/v1.4/pt/zhima-credit-records/action/userInfo`,  {params} ).then((res) => res.data)
    },
  },
}